function subarraySum(nums: number[], k: number): number {
    const m: Map<number, number> = new Map().set(0, 1);
    let sum = 0;
    let ans = 0;
    for (let i = 0; i < nums.length; i++) {
        sum += nums[i];
        let n = sum - k;
        if (m.has(n)) {
            ans += m.get(n);
        }
        m.set(sum, m.has(sum) ? m.get(sum) + 1 : 1);
    }
    return ans;
};